package cn.fl.insurance.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.insurance.dto.InsCompInfoDTO;
import cn.fl.insurance.vo.InsCompInfoVO;
import cn.fl.system.transform.SysUlFilesRecVOTransform;

/**
 * @Description: 保险公司 转换器
 * VO是客户端传递数据到服务端进行转换的数据
 * VO转换数据变成DTO传递到服务端
 * VO不能在服务端出现
 */
public class InsCompInfoVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto InsCompInfoDTO
     * @return InsCompInfoVO
     */
    public static InsCompInfoVO toVO(InsCompInfoDTO dto) {
        InsCompInfoVO vo = null;
        if (dto != null) {
            vo = new InsCompInfoVO();
            vo.setId(dto.getId());
            vo.setCompNm(dto.getCompNm());//公司名称
            vo.setCompNo(dto.getCompNo());//公司编号
            vo.setCompPid(dto.getCompPid());//保险公司父ID
            vo.setCompLvl(dto.getCompLvl());//保险公司层级
            vo.setCompStsCd(dto.getCompStsCd());//状态  已启用 已作废 流程中 未发起？
            vo.setCompAddr(dto.getCompAddr());//公司地址
            vo.setLmNm(dto.getLmNm());//联系人
            vo.setLmTel(dto.getLmTel());//联系电话
            vo.setLmEmail(dto.getLmEmail());//电子邮箱
            vo.setFaxNo(dto.getFaxNo());//传真
            vo.setZipNo(dto.getZipNo());//邮编
            vo.setBkId(dto.getBkId());//开户银行
            vo.setBkNm(dto.getBkNm());//开户支行名称
            vo.setBkNo(dto.getBkNo());//开户行号
            vo.setAccNm(dto.getAccNm());//账户名称
            vo.setAccNo(dto.getAccNo());//银行账号
            vo.setCompRem(dto.getCompRem());//备注
            vo.setBuyWayCd(dto.getBuyWayCd());//购买方式
            vo.setRgnCyCd(dto.getRgnCyCd());//区域-城市
            vo.setRgnPrCd(dto.getRgnPrCd());//区域-省份
            vo.setChnCd(dto.getChnCd());//渠道
            vo.setChnBgDt(dto.getChnBgDt());//渠道起始日期
            vo.setChnEndDt(dto.getChnEndDt());//渠道结束日期
            vo.setProtNo(dto.getProtNo());//协议号
            vo.setCrtUsrOrgCd(dto.getCrtUsrOrgCd());//客户经理组织架构代码
            vo.setOrgCd(dto.getOrgCd());//所属事业部（组织架构）
            vo.setIsValid(dto.getIsValid());//是否有效（1：是，0：否）
            vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人

            vo.setBuyWayCdNm(dto.getBuyWayCdNm());
            vo.setBkIdNm(dto.getBkIdNm());
            vo.setChnCdNm(dto.getChnCdNm());
            vo.setCompPidNm(dto.getCompPidNm());
            vo.setCompStsCdNm(dto.getCompStsCdNm());
            vo.setRgnCyNm(dto.getRgnCyNm());
            vo.setRgnPrNm(dto.getRgnPrNm());
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo InsCompInfoVO
     * @return InsCompInfoDTO
     */
    public static InsCompInfoDTO toDTO(InsCompInfoVO vo) {
        InsCompInfoDTO dto = null;
        if (vo != null) {
            dto = new InsCompInfoDTO();
            dto.setId(vo.getId());
            dto.setCompNm(vo.getCompNm());//公司名称
            dto.setCompNo(vo.getCompNo());//公司编号
            dto.setCompPid(vo.getCompPid());//保险公司父ID
            dto.setCompLvl(vo.getCompLvl());//保险公司层级
            dto.setCompStsCd(vo.getCompStsCd());//状态  已启用 已作废 流程中 未发起？
            dto.setCompAddr(vo.getCompAddr());//公司地址
            dto.setLmNm(vo.getLmNm());//联系人
            dto.setLmTel(vo.getLmTel());//联系电话
            dto.setLmEmail(vo.getLmEmail());//电子邮箱
            dto.setFaxNo(vo.getFaxNo());//传真
            dto.setZipNo(vo.getZipNo());//邮编
            dto.setBkId(vo.getBkId());//开户银行
            dto.setBkNm(vo.getBkNm());//开户支行名称
            dto.setBkNo(vo.getBkNo());//开户行号
            dto.setAccNm(vo.getAccNm());//账户名称
            dto.setAccNo(vo.getAccNo());//银行账号
            dto.setCompRem(vo.getCompRem());//备注
            dto.setBuyWayCd(vo.getBuyWayCd());//购买方式
            dto.setRgnCyCd(vo.getRgnCyCd());//区域-城市
            dto.setRgnPrCd(vo.getRgnPrCd());//区域-省份
            dto.setChnCd(vo.getChnCd());//渠道
            dto.setChnBgDt(vo.getChnBgDt());//渠道起始日期
            dto.setChnEndDt(vo.getChnEndDt());//渠道结束日期
            dto.setProtNo(vo.getProtNo());//协议号
            dto.setCrtUsrOrgCd(vo.getCrtUsrOrgCd());//客户经理组织架构代码
            dto.setOrgCd(vo.getOrgCd());//所属事业部（组织架构）
            dto.setIsValid(vo.getIsValid());//是否有效（1：是，0：否）
            dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人

            dto.setRgnCyNm(vo.getRgnCyNm());
            dto.setRgnPrNm(vo.getRgnPrNm());

            dto.setSysUlFilesRecDTOList(SysUlFilesRecVOTransform.toDTOList(vo.getSysUlFilesRecVOList()));//附件记录
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<InsCompInfo>
     * @return List<InsCompInfoDTO>
     */
    public static List<InsCompInfoVO> toVOList(List<InsCompInfoDTO> list) {
        List<InsCompInfoVO> voList = new ArrayList<InsCompInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (InsCompInfoDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }
}
